//
//  13.调整数组顺序使奇数在偶数前面.swift
//  数据结构与算法
//
//  Created by ZERO on 2021/5/17.
//

import Foundation
/*
 题目：输入一个整数数组，实现一个函数来调整该数组中数字的顺序，使得所有的奇数位于数组的前半部分，所有的偶数位于数组的后半部分，并保证奇数和奇数，偶数和偶数之间的相对位置不变。
 思路：使用原地插入法O(n),
 */
func offer_13() {
    print(Solution().reOrderArray([2, 2, 3, 4, 5, 6]))
}

fileprivate class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定，请勿修改，直接返回方法规定的值即可
     *
     * @param base double浮点型
     * @param exponent int整型
     * @return double浮点型
     */
    func reOrderArray(_ array: [Int]) -> [Int] {
        // write code here
        var arr = array
        // 记录奇数下标
        var oddIndex = -1
        for i in 0..<arr.count {
            if !(arr[i].isMultiple(of: 2)) {
                // 为奇数
                oddIndex += 1
                arr.insert(arr.remove(at: i), at: oddIndex)
            }
        }
        return arr
    }
}
